home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Technology Seed / Jan. '98 ATS.toast / QuickTime™ 3.0b11 / QTPublicInterfaces / AIncludes / ImageCodec.a < prev    next >
Encoding:
Text File  |  1998-01-12  |  54.9 KB  |  1,618 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        ImageCodec.a
  3. ;
  4. ;    Contains:    QuickTime interfaces
  5. ;
  6. ;    Version:    Technology:    
  7. ;                Release:    QuickTime 3.0 Beta
  8. ;
  9. ;    Copyright:    © 1990-1997 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__IMAGECODEC__') = 'UNDEFINED' THEN
  19. __IMAGECODEC__ SET 1
  20.  
  21.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  22.     include 'MacTypes.a'
  23.     ENDIF
  24.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  25.     include 'Quickdraw.a'
  26.     ENDIF
  27.     IF &TYPE('__QDOFFSCREEN__') = 'UNDEFINED' THEN
  28.     include 'QDOffscreen.a'
  29.     ENDIF
  30.     IF &TYPE('__MACWINDOWS__') = 'UNDEFINED' THEN
  31.     include 'MacWindows.a'
  32.     ENDIF
  33.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  34.     include 'ImageCompression.a'
  35.     ENDIF
  36.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  37.     include 'Components.a'
  38.     ENDIF
  39.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  40.     include 'Movies.a'
  41.     ENDIF
  42.     IF &TYPE('__GXTYPES__') = 'UNDEFINED' THEN
  43.     include 'GXTypes.a'
  44.     ENDIF
  45.  
  46. ;     codec capabilities flags    
  47.  
  48. codecCanScale                    EQU        $00000001
  49. codecCanMask                    EQU        $00000002
  50. codecCanMatte                    EQU        $00000004
  51. codecCanTransform                EQU        $00000008
  52. codecCanTransferMode            EQU        $00000010
  53. codecCanCopyPrev                EQU        $00000020
  54. codecCanSpool                    EQU        $00000040
  55. codecCanClipVertical            EQU        $00000080
  56. codecCanClipRectangular            EQU        $00000100
  57. codecCanRemapColor                EQU        $00000200
  58. codecCanFastDither                EQU        $00000400
  59. codecCanSrcExtract                EQU        $00000800
  60. codecCanCopyPrevComp            EQU        $00001000
  61. codecCanAsync                    EQU        $00002000
  62. codecCanMakeMask                EQU        $00004000
  63. codecCanShift                    EQU        $00008000
  64. codecCanAsyncWhen                EQU        $00010000
  65. codecCanShieldCursor            EQU        $00020000
  66. codecCanManagePrevBuffer        EQU        $00040000
  67. codecHasVolatileBuffer            EQU        $00080000
  68. codecWantsRegionMask            EQU        $00100000
  69. codecImageBufferIsOnScreen        EQU        $00200000
  70. codecWantsDestinationPixels        EQU        $00400000
  71. codecWantsSpecialScaling        EQU        $00800000
  72. codecHandlesInputs                EQU        $01000000
  73. codecCanDoIndirectSurface        EQU        $02000000
  74. codecIsSequenceSensitive        EQU        $04000000
  75. codecRequiresOffscreen            EQU        $08000000
  76. codecRequiresMaskBits            EQU        $10000000
  77. codecCanRemapResolution            EQU        $20000000
  78. codecIsDirectToScreenOnly        EQU        $40000000
  79. CodecCapabilities        RECORD 0
  80. flags                     ds.l    1                ; offset: $0 (0)
  81. wantedPixelSize             ds.w    1                ; offset: $4 (4)
  82. extendWidth                 ds.w    1                ; offset: $6 (6)
  83. extendHeight             ds.w    1                ; offset: $8 (8)
  84. bandMin                     ds.w    1                ; offset: $A (10)
  85. bandInc                     ds.w    1                ; offset: $C (12)
  86. pad                         ds.w    1                ; offset: $E (14)
  87. time                     ds.l    1                ; offset: $10 (16)
  88. sizeof                     EQU *                    ; size:   $14 (20)
  89.                         ENDR
  90. ;     codec condition flags    
  91.  
  92. codecConditionFirstBand            EQU        $00000001
  93. codecConditionLastBand            EQU        $00000002
  94. codecConditionFirstFrame        EQU        $00000004
  95. codecConditionNewDepth            EQU        $00000008
  96. codecConditionNewTransform        EQU        $00000010
  97. codecConditionNewSrcRect        EQU        $00000020
  98. codecConditionNewMask            EQU        $00000040
  99. codecConditionNewMatte            EQU        $00000080
  100. codecConditionNewTransferMode    EQU        $00000100
  101. codecConditionNewClut            EQU        $00000200
  102. codecConditionNewAccuracy        EQU        $00000400
  103. codecConditionNewDestination    EQU        $00000800
  104. codecConditionFirstScreen        EQU        $00001000
  105. codecConditionDoCursor            EQU        $00002000
  106. codecConditionCatchUpDiff        EQU        $00004000
  107. codecConditionMaskMayBeChanged    EQU        $00008000
  108. codecConditionToBuffer            EQU        $00010000
  109. codecConditionCodecChangedMask    EQU        $80000000
  110.  
  111.  
  112. codecInfoResourceType            EQU        'cdci'                ; codec info resource type 
  113. codecInterfaceVersion            EQU        2                    ; high word returned in component GetVersion 
  114. CDSequenceDataSourceQueueEntry RECORD 0
  115. nextBusy                 ds.l    1                ; offset: $0 (0)
  116. descSeed                 ds.l    1                ; offset: $4 (4)
  117. dataDesc                 ds.l    1                ; offset: $8 (8)
  118. data                     ds.l    1                ; offset: $C (12)
  119. dataSize                 ds.l    1                ; offset: $10 (16)
  120. useCount                 ds.l    1                ; offset: $14 (20)
  121. frameTime                 ds.l    1                ; offset: $18 (24)
  122. frameDuration             ds.l    1                ; offset: $1C (28)
  123. timeScale                 ds.l    1                ; offset: $20 (32)
  124. sizeof                     EQU *                    ; size:   $24 (36)
  125.                         ENDR
  126. ; typedef struct CDSequenceDataSourceQueueEntry * CDSequenceDataSourceQueueEntryPtr
  127.  
  128. CDSequenceDataSource    RECORD 0
  129. recordSize                 ds.l    1                ; offset: $0 (0)
  130. next                     ds.l    1                ; offset: $4 (4)
  131. seqID                     ds.l    1                ; offset: $8 (8)
  132. sourceID                 ds.l    1                ; offset: $C (12)
  133. sourceType                 ds.l    1                ; offset: $10 (16)
  134. sourceInputNumber         ds.l    1                ; offset: $14 (20)
  135. dataPtr                     ds.l    1                ; offset: $18 (24)
  136. dataDescription             ds.l    1                ; offset: $1C (28)
  137. changeSeed                 ds.l    1                ; offset: $20 (32)
  138. transferProc             ds.l    1                ; offset: $24 (36)
  139. transferRefcon             ds.l    1                ; offset: $28 (40)
  140. dataSize                 ds.l    1                ; offset: $2C (44)
  141. ;  fields available in QT 3 and later 
  142. dataQueue                 ds.l    1                ; offset: $30 (48)        ;  queue of CDSequenceDataSourceQueueEntry structures
  143. originalDataPtr             ds.l    1                ; offset: $34 (52)
  144. originalDataSize         ds.l    1                ; offset: $38 (56)
  145. originalDataDescription     ds.l    1                ; offset: $3C (60)
  146. originalDataDescriptionSeed  ds.l 1                ; offset: $40 (64)
  147. sizeof                     EQU *                    ; size:   $44 (68)
  148.                         ENDR
  149. ; typedef struct CDSequenceDataSource *    CDSequenceDataSourcePtr
  150.  
  151. ICMFrameTimeInfo        RECORD 0
  152. startTime                 ds        wide            ; offset: $0 (0)
  153. scale                     ds.l    1                ; offset: $8 (8)
  154. duration                 ds.l    1                ; offset: $C (12)
  155. sizeof                     EQU *                    ; size:   $10 (16)
  156.                         ENDR
  157. ; typedef struct ICMFrameTimeInfo *        ICMFrameTimeInfoPtr
  158.  
  159. CodecCompressParams        RECORD 0
  160. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  precompress,bandcompress 
  161. imageDescription         ds.l    1                ; offset: $4 (4)        ;  precompress,bandcompress 
  162. data                     ds.l    1                ; offset: $8 (8)
  163. bufferSize                 ds.l    1                ; offset: $C (12)
  164. frameNumber                 ds.l    1                ; offset: $10 (16)
  165. startLine                 ds.l    1                ; offset: $14 (20)
  166. stopLine                 ds.l    1                ; offset: $18 (24)
  167. conditionFlags             ds.l    1                ; offset: $1C (28)
  168. callerFlags                 ds.w    1                ; offset: $20 (32)
  169. capabilities             ds.l    1                ; offset: $22 (34)        ;  precompress,bandcompress 
  170. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  171. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  172. flushProcRecord             ds        ICMFlushProcRecord ; offset: $36 (54)
  173. srcPixMap                 ds        PixMap            ; offset: $3E (62)        ;  precompress,bandcompress 
  174. prevPixMap                 ds        PixMap            ; offset: $70 (112)
  175. spatialQuality             ds.l    1                ; offset: $A2 (162)
  176. temporalQuality             ds.l    1                ; offset: $A6 (166)
  177. similarity                 ds.l    1                ; offset: $AA (170)
  178. dataRateParams             ds.l    1                ; offset: $AE (174)
  179. reserved                 ds.l    1                ; offset: $B2 (178)
  180. ;  The following fields only exist for QuickTime 2.1 and greater 
  181. majorSourceChangeSeed     ds.w    1                ; offset: $B6 (182)
  182. minorSourceChangeSeed     ds.w    1                ; offset: $B8 (184)
  183. sourceData                 ds.l    1                ; offset: $BA (186)
  184. ;  The following fields only exit for QuickTime 2.5 and greater 
  185. preferredPacketSizeInBytes  ds.l 1                ; offset: $BE (190)
  186. ;  The following fields only exit for QuickTime 3.0 and greater 
  187. requestedBufferWidth     ds.l    1                ; offset: $C2 (194)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  188. requestedBufferHeight     ds.l    1                ; offset: $C6 (198)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  189. sizeof                     EQU *                    ; size:   $CA (202)
  190.                         ENDR
  191. CodecDecompressParams    RECORD 0
  192. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  predecompress,banddecompress 
  193. imageDescription         ds.l    1                ; offset: $4 (4)        ;  predecompress,banddecompress 
  194. data                     ds.l    1                ; offset: $8 (8)
  195. bufferSize                 ds.l    1                ; offset: $C (12)
  196. frameNumber                 ds.l    1                ; offset: $10 (16)
  197. startLine                 ds.l    1                ; offset: $14 (20)
  198. stopLine                 ds.l    1                ; offset: $18 (24)
  199. conditionFlags             ds.l    1                ; offset: $1C (28)
  200. callerFlags                 ds.w    1                ; offset: $20 (32)
  201. capabilities             ds.l    1                ; offset: $22 (34)        ;  predecompress,banddecompress 
  202. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  203. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  204. dataProcRecord             ds        ICMDataProcRecord ; offset: $36 (54)
  205. port                     ds.l    1                ; offset: $3E (62)        ;  predecompress,banddecompress 
  206. dstPixMap                 ds        PixMap            ; offset: $42 (66)        ;  predecompress,banddecompress 
  207. maskBits                 ds.l    1                ; offset: $74 (116)
  208. mattePixMap                 ds.l    1                ; offset: $78 (120)
  209. srcRect                     ds        Rect            ; offset: $7C (124)        ;  predecompress,banddecompress 
  210. matrix                     ds.l    1                ; offset: $84 (132)        ;  predecompress,banddecompress 
  211. accuracy                 ds.l    1                ; offset: $88 (136)        ;  predecompress,banddecompress 
  212. transferMode             ds.w    1                ; offset: $8C (140)        ;  predecompress,banddecompress 
  213. frameTime                 ds.l    1                ; offset: $8E (142)        ;  banddecompress 
  214. reserved                 ds.l    1                ; offset: $92 (146) <-- really an array of length one
  215. ;  The following fields only exist for QuickTime 2.0 and greater 
  216. matrixFlags                 ds.b    1                ; offset: $96 (150)        ;  high bit set if 2x resize 
  217. matrixType                 ds.b    1                ; offset: $97 (151)
  218. dstRect                     ds        Rect            ; offset: $98 (152)        ;  only valid for simple transforms 
  219. ;  The following fields only exist for QuickTime 2.1 and greater 
  220. majorSourceChangeSeed     ds.w    1                ; offset: $A0 (160)
  221. minorSourceChangeSeed     ds.w    1                ; offset: $A2 (162)
  222. sourceData                 ds.l    1                ; offset: $A4 (164)
  223. maskRegion                 ds.l    1                ; offset: $A8 (168)
  224. ;  The following fields only exist for QuickTime 2.5 and greater 
  225. wantedDestinationPixelTypes  ds.l 1                ; offset: $AC (172)        ;  Handle to 0-terminated list of OSTypes 
  226. screenFloodMethod         ds.l    1                ; offset: $B0 (176)
  227. screenFloodValue         ds.l    1                ; offset: $B4 (180)
  228. preferredOffscreenPixelSize  ds.w 1                ; offset: $B8 (184)
  229. ;  The following fields only exist for QuickTime 3.0 and greater 
  230. syncFrameTime             ds.l    1                ; offset: $BA (186)        ;  banddecompress 
  231. needUpdateOnTimeChange     ds.b    1                ; offset: $BE (190)        ;  banddecompress 
  232. enableBlackLining         ds.b    1                ; offset: $BF (191)
  233. needUpdateOnSourceChange  ds.b    1                ; offset: $C0 (192)        ;  band decompress 
  234. pad                         ds.b    1                ; offset: $C1 (193)
  235. unused                     ds.l    1                ; offset: $C2 (194)
  236. finalDestinationPort     ds.l    1                ; offset: $C6 (198)
  237. requestedBufferWidth     ds.l    1                ; offset: $CA (202)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  238. requestedBufferHeight     ds.l    1                ; offset: $CE (206)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  239. sizeof                     EQU *                    ; size:   $D2 (210)
  240.                         ENDR
  241.  
  242. matrixFlagScale2x                EQU        $00000080
  243. matrixFlagScale1x                EQU        $00000040
  244. matrixFlagScaleHalf                EQU        $00000020
  245.  
  246. kScreenFloodMethodNone            EQU        0
  247. kScreenFloodMethodKeyColor        EQU        1
  248. kScreenFloodMethodAlpha            EQU        2
  249.  
  250. kFlushLastQueuedFrame            EQU        0
  251. kFlushFirstQueuedFrame            EQU        1
  252.  
  253. kNewImageGWorldErase            EQU        $00000001
  254. ImageSubCodecDecompressCapabilities RECORD 0
  255. recordSize                 ds.l    1                ; offset: $0 (0)        ;  sizeof(ImageSubCodecDecompressCapabilities)
  256. decompressRecordSize     ds.l    1                ; offset: $4 (4)        ;  size of your codec's decompress record
  257. canAsync                 ds.b    1                ; offset: $8 (8)        ;  default true
  258. pad                         ds.b    3                ; offset: $9 (9)
  259. sizeof                     EQU *                    ; size:   $C (12)
  260.                         ENDR
  261.  
  262. kCodecFrameTypeUnknown            EQU        0
  263. kCodecFrameTypeKey                EQU        1
  264. kCodecFrameTypeDifference        EQU        2
  265. kCodecFrameTypeDroppableDifference EQU    3
  266. ImageSubCodecDecompressRecord RECORD 0
  267. baseAddr                 ds.l    1                ; offset: $0 (0)
  268. rowBytes                 ds.l    1                ; offset: $4 (4)
  269. codecData                 ds.l    1                ; offset: $8 (8)
  270. progressProcRecord         ds        ICMProgressProcRecord ; offset: $C (12)
  271. dataProcRecord             ds        ICMDataProcRecord ; offset: $14 (20)
  272. userDecompressRecord     ds.l    1                ; offset: $1C (28)        ;  pointer to codec-specific per-band data
  273. frameType                 ds.b    1                ; offset: $20 (32)
  274. pad                         ds.b    3                ; offset: $21 (33)
  275. sizeof                     EQU *                    ; size:   $24 (36)
  276.                         ENDR
  277. ;  name of parameters or effect -- placed in root container, optional 
  278.  
  279. kParameterTitleName                EQU        'name'
  280. kParameterTitleID                EQU        1
  281. ;  name of parameters or effect -- placed in root container, required 
  282.  
  283. kParameterWhatName                EQU        'what'
  284. kParameterWhatID                EQU        1
  285. ;  maximum number of sources -- placed in root container, required 
  286.  
  287. kParameterSourceCountName        EQU        'srcs'
  288. kParameterSourceCountID            EQU        1
  289.  
  290.  
  291. kParameterDependencyName        EQU        'deep'
  292. kParameterDependencyID            EQU        1
  293.  
  294. kParameterListDependsUponColorProfiles EQU 'prof'
  295. kParameterListDependsUponFonts    EQU        'font'
  296. ParameterDependancyRecord RECORD 0
  297. dependCount                 ds.l    1                ; offset: $0 (0)
  298. depends                     ds.l    1                ; offset: $4 (4) <-- really an array of length one
  299. sizeof                     EQU *                    ; size:   $8 (8)
  300.                         ENDR
  301.  
  302. ;   enumeration list in container -- placed in root container, optional unless used by a
  303. ;   parameter in the list
  304.  
  305.  
  306.  
  307. kParameterEnumList                EQU        'enum'
  308. EnumValuePair            RECORD 0
  309. value                     ds.l    1                ; offset: $0 (0)
  310. name                     ds        Str255            ; offset: $4 (4)
  311. sizeof                     EQU *                    ; size:   $104 (260)
  312.                         ENDR
  313. EnumListRecord            RECORD 0
  314. enumCount                 ds.l    1                ; offset: $0 (0)        ;  number of enumeration items to follow
  315. values                     ds        EnumValuePair    ; offset: $4 (4) <-- really an array of length one ;  values and names for them, packed 
  316. sizeof                     EQU *                    ; size:   $108 (264)
  317.                         ENDR
  318. ;  atom type of parameter
  319.  
  320. kParameterAtomTypeAndID            EQU        'type'
  321.  
  322. kNoAtom                            EQU        'none'                ; atom type for no data got/set
  323. kAtomNoFlags                    EQU        $00000000
  324. kAtomNotInterpolated            EQU        $00000001            ; atom can never be interpolated
  325. kAtomInterpolateIsOptional        EQU        $00000002            ; atom can be interpolated, but it is an advanced user operation
  326. ParameterAtomTypeAndID    RECORD 0
  327. atomType                 ds.l    1                ; offset: $0 (0)        ;  type of atom this data comes from/goes into
  328. atomID                     ds.l    1                ; offset: $4 (4)        ;  ID of atom this data comes from/goes into
  329. atomFlags                 ds.l    1                ; offset: $8 (8)        ;  options for this atom
  330. atomName                 ds        Str255            ; offset: $C (12)        ;  name of this value type
  331. sizeof                     EQU *                    ; size:   $10C (268)
  332.                         ENDR
  333. ;  data type of a parameter
  334.  
  335. kParameterDataType                EQU        'data'
  336.  
  337. kParameterTypeDataLong            EQU        2                    ; integer value
  338. kParameterTypeDataFixed            EQU        3                    ; fixed point value
  339. kParameterTypeDataRGBValue        EQU        8                    ; RGBColor data
  340. kParameterTypeDataDouble        EQU        11                    ; IEEE 64 bit floating point value
  341. kParameterTypeDataText            EQU        'text'                ; editable text item
  342. kParameterTypeDataEnum            EQU        'enum'                ; enumerated lookup value
  343. kParameterTypeDataBitField        EQU        'bool'                ; bit field value (something that holds boolean(s))
  344. kParameterTypeDataImage            EQU        'imag'                ; reference to an image via Picture data
  345. ParameterDataType        RECORD 0
  346. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  347. sizeof                     EQU *                    ; size:   $4 (4)
  348.                         ENDR
  349.  
  350. ;   alternate (optional) data type -- main data type always required.  
  351. ;   Must be modified or deleted when modifying main data type.
  352. ;   Main data type must be modified when alternate is modified.
  353.  
  354.  
  355.  
  356. kParameterAlternateDataType        EQU        'alt1'
  357. kParameterTypeDataColorValue    EQU        'cmlr'                ; CMColor data (supported on machines with ColorSync)
  358. kParameterTypeDataCubic            EQU        'cubi'                ; cubic bezier(s) (no built-in support)
  359. kParameterTypeDataNURB            EQU        'nurb'                ; nurb(s) (no built-in support)
  360. ParameterAlternateDataEntry RECORD 0
  361. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  362. alternateAtom             ds.l    1                ; offset: $4 (4)        ;  where to store
  363. sizeof                     EQU *                    ; size:   $8 (8)
  364.                         ENDR
  365. ParameterAlternateDataType RECORD 0
  366. numEntries                 ds.l    1                ; offset: $0 (0)
  367. entries                     ds        ParameterAlternateDataEntry ; offset: $4 (4) <-- really an array of length one
  368. sizeof                     EQU *                    ; size:   $C (12)
  369.                         ENDR
  370. ;  legal values for the parameter
  371.  
  372. kParameterDataRange                EQU        'rang'
  373.  
  374. kNoMinimumLongFixed                EQU        $7FFFFFFF            ; ignore minimum/maxiumum values
  375. kNoMaximumLongFixed                EQU        $80000000
  376. kNoScaleLongFixed                EQU        0                    ; don't perform any scaling of value
  377. kNoPrecision                    EQU        -1                    ; allow as many digits as format
  378. ;  'text'
  379. StringRangeRecord        RECORD 0
  380. maxChars                 ds.l    1                ; offset: $0 (0)        ;  maximum length of string
  381. maxLines                 ds.l    1                ; offset: $4 (4)        ;  number of editing lines to use (1 typical, 0 to default)
  382. sizeof                     EQU *                    ; size:   $8 (8)
  383.                         ENDR
  384. ;  'long'
  385. LongRangeRecord            RECORD 0
  386. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  387. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  388. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  389. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  390. sizeof                     EQU *                    ; size:   $10 (16)
  391.                         ENDR
  392. ;  'enum'
  393. EnumRangeRecord            RECORD 0
  394. enumID                     ds.l    1                ; offset: $0 (0)        ;  'enum' list in root container to search within
  395. sizeof                     EQU *                    ; size:   $4 (4)
  396.                         ENDR
  397. ;  'fixd'
  398. FixedRangeRecord        RECORD 0
  399. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  400. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  401. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  402. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  403. sizeof                     EQU *                    ; size:   $10 (16)
  404.                         ENDR
  405. ;  'doub'
  406. ;  'bool'    
  407. BooleanRangeRecord        RECORD 0
  408. maskValue                 ds.l    1                ; offset: $0 (0)        ;  value to mask on/off to set/clear the boolean
  409. sizeof                     EQU *                    ; size:   $4 (4)
  410.                         ENDR
  411. ;  'rgb '
  412. RGBRangeRecord            RECORD 0
  413. minColor                 ds        RGBColor        ; offset: $0 (0)
  414. maxColor                 ds        RGBColor        ; offset: $6 (6)
  415. sizeof                     EQU *                    ; size:   $C (12)
  416.                         ENDR
  417. ;  'imag'
  418.  
  419. kParameterImageNoFlags            EQU        0
  420. ImageRangeRecord        RECORD 0
  421. imageFlags                 ds.l    1                ; offset: $0 (0)
  422. sizeof                     EQU *                    ; size:   $4 (4)
  423.                         ENDR
  424. ;  union of all of the above
  425. ;  UI behavior of a parameter
  426.  
  427. kParameterDataBehavior            EQU        'ditl'
  428.  
  429.                                                             ; items edited via typing
  430. kParameterItemEditText            EQU        'edit'                ; edit text box
  431. kParameterItemEditLong            EQU        'long'                ; long number editing box
  432. kParameterItemEditFixed            EQU        'fixd'                ; fixed point number editing box
  433. kParameterItemEditDouble        EQU        'doub'                ; double number editing box
  434.                                                             ; items edited via control(s)
  435. kParameterItemPopUp                EQU        'popu'                ; pop up value for enum types
  436. kParameterItemRadioCluster        EQU        'radi'                ; radio cluster for enum types
  437. kParameterItemCheckBox            EQU        'chex'                ; check box for booleans
  438. kParameterItemControl            EQU        'cntl'                ; item controlled via a standard control of some type
  439.                                                             ; special user items
  440. kParameterItemLine                EQU        'line'                ; line
  441. kParameterItemColorPicker        EQU        'pick'                ; color swatch & picker
  442. kParameterItemGroupDivider        EQU        'divi'                ; start of a new group of items
  443. kParameterItemStaticText        EQU        'stat'                ; display "parameter name" as static text
  444. kParameterItemDragImage            EQU        'imag'                ; allow image display, along with drag and drop
  445.                                                             ; flags valid for lines and groups
  446. kGraphicsNoFlags                EQU        $00000000            ; no options for graphics
  447. kGraphicsFlagsGray                EQU        $00000001            ; draw lines with gray
  448.                                                             ; flags valid for groups
  449. kGroupNoFlags                    EQU        $00000000            ; no options for group -- may be combined with graphics options                        
  450. kGroupAlignText                    EQU        $00010000            ; edit text items in group have the same size
  451. kGroupSurroundBox                EQU        $00020000            ; group should be surrounded with a box
  452. kGroupMatrix                    EQU        $00040000            ; side-by-side arrangement of group is okay
  453. kGroupNoName                    EQU        $00080000            ; name of group should not be displayed above box
  454.                                                             ; flags valid for popup/radiocluster/checkbox/control
  455. kDisableControl                    EQU        $00000001
  456. kDisableWhenNotEqual            EQU        $00000001
  457. kDisableWhenEqual                EQU        $00000011
  458. kDisableWhenLessThan            EQU        $00000021
  459. kDisableWhenGreaterThan            EQU        $00000031            ; flags valid for popups
  460. kPopupStoreAsString                EQU        $00010000
  461. ControlBehaviors        RECORD 0
  462. groupID                     ds.l    1                ; offset: $0 (0)        ;  group under control of this item
  463. controlValue             ds.l    1                ; offset: $4 (4)        ;  control value for comparison purposes
  464. sizeof                     EQU *                    ; size:   $8 (8)
  465.                         ENDR
  466. ParameterDataBehavior    RECORD 0
  467. behaviorType             ds.l    1                ; offset: $0 (0)
  468. behaviorFlags             ds.l    1                ; offset: $4 (4)
  469. controls                 ds        ControlBehaviors ; offset: $8 (8)
  470. sizeof                     EQU *                    ; size:   $10 (16)
  471.                         ENDR
  472. ;  higher level purpose of a parameter or set of parameters
  473.  
  474. kParameterDataUsage                EQU        'use '
  475.  
  476. kParameterUsagePixels            EQU        'pixl'
  477. kParameterUsageRectangle        EQU        'rect'
  478. kParameterUsagePoint            EQU        'xy  '
  479. kParameterUsage3DPoint            EQU        'xyz '
  480. kParameterUsageDegrees            EQU        'degr'
  481. kParameterUsageRadians            EQU        'rads'
  482. kParameterUsagePercent            EQU        'pcnt'
  483. kParameterUsageSeconds            EQU        'secs'
  484. kParameterUsageMilliseconds        EQU        'msec'
  485. kParameterUsageMicroseconds        EQU        'µsec'
  486. kParameterUsage3by3Matrix        EQU        '3by3'
  487. ParameterDataUsage        RECORD 0
  488. usageType                 ds.l    1                ; offset: $0 (0)        ;  higher level purpose of the data or group
  489. sizeof                     EQU *                    ; size:   $4 (4)
  490.                         ENDR
  491. ;  default value(s) for a parameter
  492.  
  493. kParameterDataDefaultItem        EQU        'dflt'
  494. ;  atoms that help to fill in data within the info window 
  495.  
  496. kParameterInfoLongName            EQU        '©nam'
  497. kParameterInfoCopyright            EQU        '©cpy'
  498. kParameterInfoDescription        EQU        '©inf'
  499. kParameterInfoWindowTitle        EQU        '©wnt'
  500. kParameterInfoPicture            EQU        '©pix'
  501. kParameterInfoIDs                EQU        1
  502. ;  flags for ImageCodecValidateParameters 
  503.  
  504. kParameterValidationNoFlags        EQU        $00000000
  505. kParameterValidationFinalValidation EQU    $00000001
  506. ; typedef long                             QTParameterValidationOptions
  507.  
  508. ;     codec selectors 0-127 are reserved by Apple 
  509. ;     codec selectors 128-191 are subtype specific 
  510. ;     codec selectors 192-255 are vendor specific 
  511. ;     codec selectors 256-32767 are available for general use 
  512. ;     negative selectors are reserved by the Component Manager 
  513. ;
  514. ; pascal ComponentResult ImageCodecGetCodecInfo(ComponentInstance ci, CodecInfo *info)
  515. ;
  516.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  517.         Macro
  518.         _ImageCodecGetCodecInfo
  519.             move.l              #$00040000,-(sp)
  520.             moveq               #0,D0
  521.             dc.w                $A82A
  522.         EndM
  523.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  524.         IMPORT_CFM_FUNCTION ImageCodecGetCodecInfo
  525.     ENDIF
  526.  
  527. ;
  528. ; pascal ComponentResult ImageCodecGetCompressionTime(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *time)
  529. ;
  530.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  531.         Macro
  532.         _ImageCodecGetCompressionTime
  533.             move.l              #$00160001,-(sp)
  534.             moveq               #0,D0
  535.             dc.w                $A82A
  536.         EndM
  537.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  538.         IMPORT_CFM_FUNCTION ImageCodecGetCompressionTime
  539.     ENDIF
  540.  
  541. ;
  542. ; pascal ComponentResult ImageCodecGetMaxCompressionSize(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, long *size)
  543. ;
  544.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  545.         Macro
  546.         _ImageCodecGetMaxCompressionSize
  547.             move.l              #$00120002,-(sp)
  548.             moveq               #0,D0
  549.             dc.w                $A82A
  550.         EndM
  551.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  552.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSize
  553.     ENDIF
  554.  
  555. ;
  556. ; pascal ComponentResult ImageCodecPreCompress(ComponentInstance ci, CodecCompressParams *params)
  557. ;
  558.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  559.         Macro
  560.         _ImageCodecPreCompress
  561.             move.l              #$00040003,-(sp)
  562.             moveq               #0,D0
  563.             dc.w                $A82A
  564.         EndM
  565.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  566.         IMPORT_CFM_FUNCTION ImageCodecPreCompress
  567.     ENDIF
  568.  
  569. ;
  570. ; pascal ComponentResult ImageCodecBandCompress(ComponentInstance ci, CodecCompressParams *params)
  571. ;
  572.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  573.         Macro
  574.         _ImageCodecBandCompress
  575.             move.l              #$00040004,-(sp)
  576.             moveq               #0,D0
  577.             dc.w                $A82A
  578.         EndM
  579.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  580.         IMPORT_CFM_FUNCTION ImageCodecBandCompress
  581.     ENDIF
  582.  
  583. ;
  584. ; pascal ComponentResult ImageCodecPreDecompress(ComponentInstance ci, CodecDecompressParams *params)
  585. ;
  586.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  587.         Macro
  588.         _ImageCodecPreDecompress
  589.             move.l              #$00040005,-(sp)
  590.             moveq               #0,D0
  591.             dc.w                $A82A
  592.         EndM
  593.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  594.         IMPORT_CFM_FUNCTION ImageCodecPreDecompress
  595.     ENDIF
  596.  
  597. ;
  598. ; pascal ComponentResult ImageCodecBandDecompress(ComponentInstance ci, CodecDecompressParams *params)
  599. ;
  600.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  601.         Macro
  602.         _ImageCodecBandDecompress
  603.             move.l              #$00040006,-(sp)
  604.             moveq               #0,D0
  605.             dc.w                $A82A
  606.         EndM
  607.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  608.         IMPORT_CFM_FUNCTION ImageCodecBandDecompress
  609.     ENDIF
  610.  
  611. ;
  612. ; pascal ComponentResult ImageCodecBusy(ComponentInstance ci, ImageSequence seq)
  613. ;
  614.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  615.         Macro
  616.         _ImageCodecBusy
  617.             move.l              #$00040007,-(sp)
  618.             moveq               #0,D0
  619.             dc.w                $A82A
  620.         EndM
  621.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  622.         IMPORT_CFM_FUNCTION ImageCodecBusy
  623.     ENDIF
  624.  
  625. ;
  626. ; pascal ComponentResult ImageCodecGetCompressedImageSize(ComponentInstance ci, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize)
  627. ;
  628.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  629.         Macro
  630.         _ImageCodecGetCompressedImageSize
  631.             move.l              #$00140008,-(sp)
  632.             moveq               #0,D0
  633.             dc.w                $A82A
  634.         EndM
  635.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  636.         IMPORT_CFM_FUNCTION ImageCodecGetCompressedImageSize
  637.     ENDIF
  638.  
  639. ;
  640. ; pascal ComponentResult ImageCodecGetSimilarity(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity)
  641. ;
  642.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  643.         Macro
  644.         _ImageCodecGetSimilarity
  645.             move.l              #$00140009,-(sp)
  646.             moveq               #0,D0
  647.             dc.w                $A82A
  648.         EndM
  649.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  650.         IMPORT_CFM_FUNCTION ImageCodecGetSimilarity
  651.     ENDIF
  652.  
  653. ;
  654. ; pascal ComponentResult ImageCodecTrimImage(ComponentInstance ci, ImageDescriptionHandle Desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc)
  655. ;
  656.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  657.         Macro
  658.         _ImageCodecTrimImage
  659.             move.l              #$0024000A,-(sp)
  660.             moveq               #0,D0
  661.             dc.w                $A82A
  662.         EndM
  663.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  664.         IMPORT_CFM_FUNCTION ImageCodecTrimImage
  665.     ENDIF
  666.  
  667. ;
  668. ; pascal ComponentResult ImageCodecRequestSettings(ComponentInstance ci, Handle settings, Rect *rp, ModalFilterUPP filterProc)
  669. ;
  670.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  671.         Macro
  672.         _ImageCodecRequestSettings
  673.             move.l              #$000C000B,-(sp)
  674.             moveq               #0,D0
  675.             dc.w                $A82A
  676.         EndM
  677.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  678.         IMPORT_CFM_FUNCTION ImageCodecRequestSettings
  679.     ENDIF
  680.  
  681. ;
  682. ; pascal ComponentResult ImageCodecGetSettings(ComponentInstance ci, Handle settings)
  683. ;
  684.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  685.         Macro
  686.         _ImageCodecGetSettings
  687.             move.l              #$0004000C,-(sp)
  688.             moveq               #0,D0
  689.             dc.w                $A82A
  690.         EndM
  691.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  692.         IMPORT_CFM_FUNCTION ImageCodecGetSettings
  693.     ENDIF
  694.  
  695. ;
  696. ; pascal ComponentResult ImageCodecSetSettings(ComponentInstance ci, Handle settings)
  697. ;
  698.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  699.         Macro
  700.         _ImageCodecSetSettings
  701.             move.l              #$0004000D,-(sp)
  702.             moveq               #0,D0
  703.             dc.w                $A82A
  704.         EndM
  705.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  706.         IMPORT_CFM_FUNCTION ImageCodecSetSettings
  707.     ENDIF
  708.  
  709. ;
  710. ; pascal ComponentResult ImageCodecFlush(ComponentInstance ci)
  711. ;
  712.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  713.         Macro
  714.         _ImageCodecFlush
  715.             move.l              #$0000000E,-(sp)
  716.             moveq               #0,D0
  717.             dc.w                $A82A
  718.         EndM
  719.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  720.         IMPORT_CFM_FUNCTION ImageCodecFlush
  721.     ENDIF
  722.  
  723. ;
  724. ; pascal ComponentResult ImageCodecSetTimeCode(ComponentInstance ci, void *timeCodeFormat, void *timeCodeTime)
  725. ;
  726.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  727.         Macro
  728.         _ImageCodecSetTimeCode
  729.             move.l              #$0008000F,-(sp)
  730.             moveq               #0,D0
  731.             dc.w                $A82A
  732.         EndM
  733.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  734.         IMPORT_CFM_FUNCTION ImageCodecSetTimeCode
  735.     ENDIF
  736.  
  737. ;
  738. ; pascal ComponentResult ImageCodecIsImageDescriptionEquivalent(ComponentInstance ci, ImageDescriptionHandle newDesc, Boolean *equivalent)
  739. ;
  740.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  741.         Macro
  742.         _ImageCodecIsImageDescriptionEquivalent
  743.             move.l              #$00080010,-(sp)
  744.             moveq               #0,D0
  745.             dc.w                $A82A
  746.         EndM
  747.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  748.         IMPORT_CFM_FUNCTION ImageCodecIsImageDescriptionEquivalent
  749.     ENDIF
  750.  
  751. ;
  752. ; pascal ComponentResult ImageCodecNewMemory(ComponentInstance ci, Ptr *data, Size dataSize, long dataUse, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  753. ;
  754.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  755.         Macro
  756.         _ImageCodecNewMemory
  757.             move.l              #$00140011,-(sp)
  758.             moveq               #0,D0
  759.             dc.w                $A82A
  760.         EndM
  761.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  762.         IMPORT_CFM_FUNCTION ImageCodecNewMemory
  763.     ENDIF
  764.  
  765. ;
  766. ; pascal ComponentResult ImageCodecDisposeMemory(ComponentInstance ci, Ptr data)
  767. ;
  768.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  769.         Macro
  770.         _ImageCodecDisposeMemory
  771.             move.l              #$00040012,-(sp)
  772.             moveq               #0,D0
  773.             dc.w                $A82A
  774.         EndM
  775.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  776.         IMPORT_CFM_FUNCTION ImageCodecDisposeMemory
  777.     ENDIF
  778.  
  779. ;
  780. ; pascal ComponentResult ImageCodecHitTestData(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, Boolean *hit)
  781. ;
  782.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  783.         Macro
  784.         _ImageCodecHitTestData
  785.             move.l              #$00140013,-(sp)
  786.             moveq               #0,D0
  787.             dc.w                $A82A
  788.         EndM
  789.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  790.         IMPORT_CFM_FUNCTION ImageCodecHitTestData
  791.     ENDIF
  792.  
  793. ;
  794. ; pascal ComponentResult ImageCodecNewImageBufferMemory(ComponentInstance ci, CodecDecompressParams *params, long flags, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  795. ;
  796.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  797.         Macro
  798.         _ImageCodecNewImageBufferMemory
  799.             move.l              #$00100014,-(sp)
  800.             moveq               #0,D0
  801.             dc.w                $A82A
  802.         EndM
  803.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  804.         IMPORT_CFM_FUNCTION ImageCodecNewImageBufferMemory
  805.     ENDIF
  806.  
  807. ;
  808. ; pascal ComponentResult ImageCodecExtractAndCombineFields(ComponentInstance ci, long fieldFlags, void *data1, long dataSize1, ImageDescriptionHandle desc1, void *data2, long dataSize2, ImageDescriptionHandle desc2, void *outputData, long *outDataSize, ImageDescriptionHandle descOut)
  809. ;
  810.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  811.         Macro
  812.         _ImageCodecExtractAndCombineFields
  813.             move.l              #$00280015,-(sp)
  814.             moveq               #0,D0
  815.             dc.w                $A82A
  816.         EndM
  817.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  818.         IMPORT_CFM_FUNCTION ImageCodecExtractAndCombineFields
  819.     ENDIF
  820.  
  821. ;
  822. ; pascal ComponentResult ImageCodecGetMaxCompressionSizeWithSources(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, CDSequenceDataSourcePtr sourceData, long *size)
  823. ;
  824.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  825.         Macro
  826.         _ImageCodecGetMaxCompressionSizeWithSources
  827.             move.l              #$00160016,-(sp)
  828.             moveq               #0,D0
  829.             dc.w                $A82A
  830.         EndM
  831.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  832.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSizeWithSources
  833.     ENDIF
  834.  
  835. ;
  836. ; pascal ComponentResult ImageCodecSetTimeBase(ComponentInstance ci, void *base)
  837. ;
  838.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  839.         Macro
  840.         _ImageCodecSetTimeBase
  841.             move.l              #$00040017,-(sp)
  842.             moveq               #0,D0
  843.             dc.w                $A82A
  844.         EndM
  845.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  846.         IMPORT_CFM_FUNCTION ImageCodecSetTimeBase
  847.     ENDIF
  848.  
  849. ;
  850. ; pascal ComponentResult ImageCodecSourceChanged(ComponentInstance ci, UInt32 majorSourceChangeSeed, UInt32 minorSourceChangeSeed, CDSequenceDataSourcePtr sourceData, long *flagsOut)
  851. ;
  852.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  853.         Macro
  854.         _ImageCodecSourceChanged
  855.             move.l              #$00100018,-(sp)
  856.             moveq               #0,D0
  857.             dc.w                $A82A
  858.         EndM
  859.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  860.         IMPORT_CFM_FUNCTION ImageCodecSourceChanged
  861.     ENDIF
  862.  
  863. ;
  864. ; pascal ComponentResult ImageCodecFlushFrame(ComponentInstance ci, UInt32 flags)
  865. ;
  866.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  867.         Macro
  868.         _ImageCodecFlushFrame
  869.             move.l              #$00040019,-(sp)
  870.             moveq               #0,D0
  871.             dc.w                $A82A
  872.         EndM
  873.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  874.         IMPORT_CFM_FUNCTION ImageCodecFlushFrame
  875.     ENDIF
  876.  
  877. ;
  878. ; pascal ComponentResult ImageCodecGetSettingsAsText(ComponentInstance ci, Handle *text)
  879. ;
  880.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  881.         Macro
  882.         _ImageCodecGetSettingsAsText
  883.             move.l              #$0004001A,-(sp)
  884.             moveq               #0,D0
  885.             dc.w                $A82A
  886.         EndM
  887.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  888.         IMPORT_CFM_FUNCTION ImageCodecGetSettingsAsText
  889.     ENDIF
  890.  
  891. ;
  892. ; pascal ComponentResult ImageCodecGetParameterListHandle(ComponentInstance ci, Handle *parameterDescriptionHandle)
  893. ;
  894.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  895.         Macro
  896.         _ImageCodecGetParameterListHandle
  897.             move.l              #$0004001B,-(sp)
  898.             moveq               #0,D0
  899.             dc.w                $A82A
  900.         EndM
  901.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  902.         IMPORT_CFM_FUNCTION ImageCodecGetParameterListHandle
  903.     ENDIF
  904.  
  905. ;
  906. ; pascal ComponentResult ImageCodecGetParameterList(ComponentInstance ci, QTAtomContainer *parameterDescription)
  907. ;
  908.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  909.         Macro
  910.         _ImageCodecGetParameterList
  911.             move.l              #$0004001C,-(sp)
  912.             moveq               #0,D0
  913.             dc.w                $A82A
  914.         EndM
  915.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  916.         IMPORT_CFM_FUNCTION ImageCodecGetParameterList
  917.     ENDIF
  918.  
  919. ;
  920. ; pascal ComponentResult ImageCodecCreateStandardParameterDialog(ComponentInstance ci, QTAtomContainer parameterDescription, QTAtomContainer parameters, QTParameterDialogOptions dialogOptions, DialogPtr existingDialog, short existingUserItem, QTParameterDialog *createdDialog)
  921. ;
  922.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  923.         Macro
  924.         _ImageCodecCreateStandardParameterDialog
  925.             move.l              #$0016001D,-(sp)
  926.             moveq               #0,D0
  927.             dc.w                $A82A
  928.         EndM
  929.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  930.         IMPORT_CFM_FUNCTION ImageCodecCreateStandardParameterDialog
  931.     ENDIF
  932.  
  933. ;
  934. ; pascal ComponentResult ImageCodecIsStandardParameterDialogEvent(ComponentInstance ci, EventRecord *pEvent, QTParameterDialog createdDialog)
  935. ;
  936.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  937.         Macro
  938.         _ImageCodecIsStandardParameterDialogEvent
  939.             move.l              #$0008001E,-(sp)
  940.             moveq               #0,D0
  941.             dc.w                $A82A
  942.         EndM
  943.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  944.         IMPORT_CFM_FUNCTION ImageCodecIsStandardParameterDialogEvent
  945.     ENDIF
  946.  
  947. ;
  948. ; pascal ComponentResult ImageCodecDismissStandardParameterDialog(ComponentInstance ci, QTParameterDialog createdDialog)
  949. ;
  950.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  951.         Macro
  952.         _ImageCodecDismissStandardParameterDialog
  953.             move.l              #$0004001F,-(sp)
  954.             moveq               #0,D0
  955.             dc.w                $A82A
  956.         EndM
  957.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  958.         IMPORT_CFM_FUNCTION ImageCodecDismissStandardParameterDialog
  959.     ENDIF
  960.  
  961. ;
  962. ; pascal ComponentResult ImageCodecStandardParameterDialogDoAction(ComponentInstance ci, QTParameterDialog createdDialog, long action, void *params)
  963. ;
  964.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  965.         Macro
  966.         _ImageCodecStandardParameterDialogDoAction
  967.             move.l              #$000C0020,-(sp)
  968.             moveq               #0,D0
  969.             dc.w                $A82A
  970.         EndM
  971.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  972.         IMPORT_CFM_FUNCTION ImageCodecStandardParameterDialogDoAction
  973.     ENDIF
  974.  
  975. ;
  976. ; pascal ComponentResult ImageCodecNewImageGWorld(ComponentInstance ci, CodecDecompressParams *params, GWorldPtr *newGW, long flags)
  977. ;
  978.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  979.         Macro
  980.         _ImageCodecNewImageGWorld
  981.             move.l              #$000C0021,-(sp)
  982.             moveq               #0,D0
  983.             dc.w                $A82A
  984.         EndM
  985.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  986.         IMPORT_CFM_FUNCTION ImageCodecNewImageGWorld
  987.     ENDIF
  988.  
  989. ;
  990. ; pascal ComponentResult ImageCodecDisposeImageGWorld(ComponentInstance ci, GWorldPtr theGW)
  991. ;
  992.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  993.         Macro
  994.         _ImageCodecDisposeImageGWorld
  995.             move.l              #$00040022,-(sp)
  996.             moveq               #0,D0
  997.             dc.w                $A82A
  998.         EndM
  999.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1000.         IMPORT_CFM_FUNCTION ImageCodecDisposeImageGWorld
  1001.     ENDIF
  1002.  
  1003. ;
  1004. ; pascal ComponentResult ImageCodecHitTestDataWithFlags(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, long *hit, long hitFlags)
  1005. ;
  1006.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1007.         Macro
  1008.         _ImageCodecHitTestDataWithFlags
  1009.             move.l              #$00180023,-(sp)
  1010.             moveq               #0,D0
  1011.             dc.w                $A82A
  1012.         EndM
  1013.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1014.         IMPORT_CFM_FUNCTION ImageCodecHitTestDataWithFlags
  1015.     ENDIF
  1016.  
  1017. ;
  1018. ; pascal ComponentResult ImageCodecValidateParameters(ComponentInstance ci, QTAtomContainer parameters, QTParameterValidationOptions validationFlags, StringPtr errorString)
  1019. ;
  1020.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1021.         Macro
  1022.         _ImageCodecValidateParameters
  1023.             move.l              #$000C0024,-(sp)
  1024.             moveq               #0,D0
  1025.             dc.w                $A82A
  1026.         EndM
  1027.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1028.         IMPORT_CFM_FUNCTION ImageCodecValidateParameters
  1029.     ENDIF
  1030.  
  1031. ;
  1032. ; pascal ComponentResult ImageCodecGetBaseMPWorkFunction(ComponentInstance ci, ComponentMPWorkFunctionUPP *workFunction, void **refCon, ImageCodecMPDrawBandUPP drawProc, void *drawProcRefCon)
  1033. ;
  1034.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1035.         Macro
  1036.         _ImageCodecGetBaseMPWorkFunction
  1037.             move.l              #$00100025,-(sp)
  1038.             moveq               #0,D0
  1039.             dc.w                $A82A
  1040.         EndM
  1041.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1042.         IMPORT_CFM_FUNCTION ImageCodecGetBaseMPWorkFunction
  1043.     ENDIF
  1044.  
  1045. ;
  1046. ; pascal ComponentResult ImageCodecPreflight(ComponentInstance ci, CodecDecompressParams *params)
  1047. ;
  1048.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1049.         Macro
  1050.         _ImageCodecPreflight
  1051.             move.l              #$00040200,-(sp)
  1052.             moveq               #0,D0
  1053.             dc.w                $A82A
  1054.         EndM
  1055.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1056.         IMPORT_CFM_FUNCTION ImageCodecPreflight
  1057.     ENDIF
  1058.  
  1059. ;
  1060. ; pascal ComponentResult ImageCodecInitialize(ComponentInstance ci, ImageSubCodecDecompressCapabilities *cap)
  1061. ;
  1062.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1063.         Macro
  1064.         _ImageCodecInitialize
  1065.             move.l              #$00040201,-(sp)
  1066.             moveq               #0,D0
  1067.             dc.w                $A82A
  1068.         EndM
  1069.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1070.         IMPORT_CFM_FUNCTION ImageCodecInitialize
  1071.     ENDIF
  1072.  
  1073. ;
  1074. ; pascal ComponentResult ImageCodecBeginBand(ComponentInstance ci, CodecDecompressParams *params, ImageSubCodecDecompressRecord *drp, long flags)
  1075. ;
  1076.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1077.         Macro
  1078.         _ImageCodecBeginBand
  1079.             move.l              #$000C0202,-(sp)
  1080.             moveq               #0,D0
  1081.             dc.w                $A82A
  1082.         EndM
  1083.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1084.         IMPORT_CFM_FUNCTION ImageCodecBeginBand
  1085.     ENDIF
  1086.  
  1087. ;
  1088. ; pascal ComponentResult ImageCodecDrawBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp)
  1089. ;
  1090.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1091.         Macro
  1092.         _ImageCodecDrawBand
  1093.             move.l              #$00040203,-(sp)
  1094.             moveq               #0,D0
  1095.             dc.w                $A82A
  1096.         EndM
  1097.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1098.         IMPORT_CFM_FUNCTION ImageCodecDrawBand
  1099.     ENDIF
  1100.  
  1101. ;
  1102. ; pascal ComponentResult ImageCodecEndBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp, OSErr result, long flags)
  1103. ;
  1104.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1105.         Macro
  1106.         _ImageCodecEndBand
  1107.             move.l              #$000A0204,-(sp)
  1108.             moveq               #0,D0
  1109.             dc.w                $A82A
  1110.         EndM
  1111.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1112.         IMPORT_CFM_FUNCTION ImageCodecEndBand
  1113.     ENDIF
  1114.  
  1115. ;
  1116. ; pascal ComponentResult ImageCodecQueueStarting(ComponentInstance ci)
  1117. ;
  1118.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1119.         Macro
  1120.         _ImageCodecQueueStarting
  1121.             move.l              #$00000205,-(sp)
  1122.             moveq               #0,D0
  1123.             dc.w                $A82A
  1124.         EndM
  1125.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1126.         IMPORT_CFM_FUNCTION ImageCodecQueueStarting
  1127.     ENDIF
  1128.  
  1129. ;
  1130. ; pascal ComponentResult ImageCodecQueueStopping(ComponentInstance ci)
  1131. ;
  1132.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1133.         Macro
  1134.         _ImageCodecQueueStopping
  1135.             move.l              #$00000206,-(sp)
  1136.             moveq               #0,D0
  1137.             dc.w                $A82A
  1138.         EndM
  1139.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1140.         IMPORT_CFM_FUNCTION ImageCodecQueueStopping
  1141.     ENDIF
  1142.  
  1143. ;
  1144. ; pascal ComponentResult ImageCodecDroppingFrame(ComponentInstance ci, const ImageSubCodecDecompressRecord *drp)
  1145. ;
  1146.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1147.         Macro
  1148.         _ImageCodecDroppingFrame
  1149.             move.l              #$00040207,-(sp)
  1150.             moveq               #0,D0
  1151.             dc.w                $A82A
  1152.         EndM
  1153.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1154.         IMPORT_CFM_FUNCTION ImageCodecDroppingFrame
  1155.     ENDIF
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169. kMotionJPEGTag                    EQU        'mjpg'
  1170. kJPEGQuantizationTablesImageDescriptionExtension EQU 'mjqt'
  1171. kJPEGHuffmanTablesImageDescriptionExtension EQU 'mjht'
  1172. kFieldInfoImageDescriptionExtension EQU    'fiel'
  1173. MotionJPEGApp1Marker    RECORD 0
  1174. unused                     ds.l    1                ; offset: $0 (0)
  1175. tag                         ds.l    1                ; offset: $4 (4)
  1176. fieldSize                 ds.l    1                ; offset: $8 (8)
  1177. paddedFieldSize             ds.l    1                ; offset: $C (12)
  1178. offsetToNextField         ds.l    1                ; offset: $10 (16)
  1179. qTableOffset             ds.l    1                ; offset: $14 (20)
  1180. huffmanTableOffset         ds.l    1                ; offset: $18 (24)
  1181. sofOffset                 ds.l    1                ; offset: $1C (28)
  1182. sosOffset                 ds.l    1                ; offset: $20 (32)
  1183. soiOffset                 ds.l    1                ; offset: $24 (36)
  1184. sizeof                     EQU *                    ; size:   $28 (40)
  1185.                         ENDR
  1186.  
  1187. ;
  1188. ; pascal ComponentResult QTPhotoSetSampling(ComponentInstance codec, short yH, short yV, short cbH, short cbV, short crH, short crV)
  1189. ;
  1190.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1191.         Macro
  1192.         _QTPhotoSetSampling
  1193.             move.l              #$000C0100,-(sp)
  1194.             moveq               #0,D0
  1195.             dc.w                $A82A
  1196.         EndM
  1197.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1198.         IMPORT_CFM_FUNCTION QTPhotoSetSampling
  1199.     ENDIF
  1200.  
  1201. ;
  1202. ; pascal ComponentResult QTPhotoSetRestartInterval(ComponentInstance codec, unsigned short restartInterval)
  1203. ;
  1204.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1205.         Macro
  1206.         _QTPhotoSetRestartInterval
  1207.             move.l              #$00020101,-(sp)
  1208.             moveq               #0,D0
  1209.             dc.w                $A82A
  1210.         EndM
  1211.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1212.         IMPORT_CFM_FUNCTION QTPhotoSetRestartInterval
  1213.     ENDIF
  1214.  
  1215. ;
  1216. ; pascal ComponentResult QTPhotoDefineHuffmanTable(ComponentInstance codec, short componentNumber, Boolean isDC, unsigned char *lengthCounts, unsigned char *values)
  1217. ;
  1218.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1219.         Macro
  1220.         _QTPhotoDefineHuffmanTable
  1221.             move.l              #$000C0102,-(sp)
  1222.             moveq               #0,D0
  1223.             dc.w                $A82A
  1224.         EndM
  1225.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1226.         IMPORT_CFM_FUNCTION QTPhotoDefineHuffmanTable
  1227.     ENDIF
  1228.  
  1229. ;
  1230. ; pascal ComponentResult QTPhotoDefineQuantizationTable(ComponentInstance codec, short componentNumber, unsigned char *table)
  1231. ;
  1232.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1233.         Macro
  1234.         _QTPhotoDefineQuantizationTable
  1235.             move.l              #$00060103,-(sp)
  1236.             moveq               #0,D0
  1237.             dc.w                $A82A
  1238.         EndM
  1239.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1240.         IMPORT_CFM_FUNCTION QTPhotoDefineQuantizationTable
  1241.     ENDIF
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247. ;  source identifier -- placed in root container of description, one or more required 
  1248.  
  1249. kEffectSourceName                EQU        'src '
  1250.  
  1251. ;  source type -- placed in the input map to identify the source kind 
  1252.  
  1253. kEffectDataSourceType            EQU        'dtst'
  1254. ;   default effect types 
  1255.  
  1256. kEffectRawSource                EQU        0                    ; the source is raw image data
  1257. kEffectGenericType                EQU        'geff'                ; generic effect for combining others
  1258.  
  1259.  
  1260. ; typedef EffectSource *                EffectSourcePtr
  1261.  
  1262. SourceData                RECORD 0
  1263. image                     ds.l    1                ; offset: $0 (0)
  1264.                          ORG 0
  1265. effect                     ds.l    1                ; offset: $0 (0)
  1266. sizeof                     EQU *                    ; size:   $4 (4)
  1267.                         ENDR
  1268. EffectSource            RECORD 0
  1269. effectType                 ds.l    1                ; offset: $0 (0)        ;  type of effect or kEffectRawSource if raw ICM data
  1270. data                     ds.l    1                ; offset: $4 (4)        ;  track data for this effect
  1271. source                     ds        SourceData        ; offset: $8 (8)        ;  source/effect pointers
  1272. next                     ds.l    1                ; offset: $C (12)        ;  the next source for the parent effect
  1273. sizeof                     EQU *                    ; size:   $10 (16)
  1274.                         ENDR
  1275. EffectsFrameParams        RECORD 0
  1276. frameTime                 ds        ICMFrameTimeRecord ; offset: $0 (0)        ;  timing data
  1277. effectDuration             ds.l    1                ; offset: $30 (48)        ;  the duration of a single effect frame
  1278. doAsync                     ds.b    1                ; offset: $34 (52)        ;  set to true if the effect can go async
  1279. pad                         ds.b    3                ; offset: $35 (53)
  1280. source                     ds.l    1                ; offset: $38 (56)        ;  ptr to the source input tree
  1281. refCon                     ds.l    1                ; offset: $3C (60)        ;  storage for the effect
  1282. sizeof                     EQU *                    ; size:   $40 (64)
  1283.                         ENDR
  1284. ; typedef struct EffectsFrameParams *    EffectsFrameParamsPtr
  1285.  
  1286.  
  1287.  
  1288. ;
  1289. ; pascal ComponentResult ImageCodecEffectSetup(ComponentInstance effect, CodecDecompressParams *p)
  1290. ;
  1291.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1292.         Macro
  1293.         _ImageCodecEffectSetup
  1294.             move.l              #$00040300,-(sp)
  1295.             moveq               #0,D0
  1296.             dc.w                $A82A
  1297.         EndM
  1298.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1299.         IMPORT_CFM_FUNCTION ImageCodecEffectSetup
  1300.     ENDIF
  1301.  
  1302. ;
  1303. ; pascal ComponentResult ImageCodecEffectBegin(ComponentInstance effect, CodecDecompressParams *p, EffectsFrameParamsPtr ePtr)
  1304. ;
  1305.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1306.         Macro
  1307.         _ImageCodecEffectBegin
  1308.             move.l              #$00080301,-(sp)
  1309.             moveq               #0,D0
  1310.             dc.w                $A82A
  1311.         EndM
  1312.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1313.         IMPORT_CFM_FUNCTION ImageCodecEffectBegin
  1314.     ENDIF
  1315.  
  1316. ;
  1317. ; pascal ComponentResult ImageCodecEffectRenderFrame(ComponentInstance effect, EffectsFrameParamsPtr p)
  1318. ;
  1319.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1320.         Macro
  1321.         _ImageCodecEffectRenderFrame
  1322.             move.l              #$00040302,-(sp)
  1323.             moveq               #0,D0
  1324.             dc.w                $A82A
  1325.         EndM
  1326.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1327.         IMPORT_CFM_FUNCTION ImageCodecEffectRenderFrame
  1328.     ENDIF
  1329.  
  1330. ;
  1331. ; pascal ComponentResult ImageCodecEffectConvertEffectSourceToFormat(ComponentInstance effect, EffectSourcePtr sourceToConvert, ImageDescriptionHandle requestedDesc)
  1332. ;
  1333.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1334.         Macro
  1335.         _ImageCodecEffectConvertEffectSourceToFormat
  1336.             move.l              #$00080303,-(sp)
  1337.             moveq               #0,D0
  1338.             dc.w                $A82A
  1339.         EndM
  1340.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1341.         IMPORT_CFM_FUNCTION ImageCodecEffectConvertEffectSourceToFormat
  1342.     ENDIF
  1343.  
  1344. ;
  1345. ; pascal ComponentResult ImageCodecEffectCancel(ComponentInstance effect, EffectsFrameParamsPtr p)
  1346. ;
  1347.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1348.         Macro
  1349.         _ImageCodecEffectCancel
  1350.             move.l              #$00040304,-(sp)
  1351.             moveq               #0,D0
  1352.             dc.w                $A82A
  1353.         EndM
  1354.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1355.         IMPORT_CFM_FUNCTION ImageCodecEffectCancel
  1356.     ENDIF
  1357.  
  1358. ;
  1359. ; pascal ComponentResult ImageCodecEffectGetSpeed(ComponentInstance effect, QTAtomContainer parameters, Fixed *pFPS)
  1360. ;
  1361.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1362.         Macro
  1363.         _ImageCodecEffectGetSpeed
  1364.             move.l              #$00080305,-(sp)
  1365.             moveq               #0,D0
  1366.             dc.w                $A82A
  1367.         EndM
  1368.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1369.         IMPORT_CFM_FUNCTION ImageCodecEffectGetSpeed
  1370.     ENDIF
  1371.  
  1372.  
  1373.  
  1374.  
  1375. ;  curve atom types and data structures 
  1376.  
  1377. kCurvePathAtom                    EQU        'path'
  1378. kCurveEndAtom                    EQU        'zero'
  1379. kCurveAntialiasControlAtom        EQU        'anti'
  1380. kCurveAntialiasOff                EQU        0
  1381. kCurveAntialiasOn                EQU        $FFFFFFFF
  1382. kCurveFillTypeAtom                EQU        'fill'
  1383. kCurvePenThicknessAtom            EQU        'pent'
  1384. kCurveMiterLimitAtom            EQU        'mitr'
  1385. kCurveJoinAttributesAtom        EQU        'join'
  1386. kCurveMinimumDepthAtom            EQU        'mind'
  1387. kCurveDepthAlwaysOffscreenMask    EQU        $80000000
  1388. kCurveTransferModeAtom            EQU        'xfer'
  1389. kCurveGradientAngleAtom            EQU        'angl'
  1390. kCurveGradientRadiusAtom        EQU        'radi'
  1391. kCurveGradientOffsetAtom        EQU        'cent'
  1392.  
  1393. kCurveARGBColorAtom                EQU        'argb'
  1394. ARGBColor                RECORD 0
  1395. alpha                     ds.w    1                ; offset: $0 (0)
  1396. red                         ds.w    1                ; offset: $2 (2)
  1397. green                     ds.w    1                ; offset: $4 (4)
  1398. blue                     ds.w    1                ; offset: $6 (6)
  1399. sizeof                     EQU *                    ; size:   $8 (8)
  1400.                         ENDR
  1401.  
  1402. kCurveGradientRecordAtom        EQU        'grad'
  1403. GradientColorRecord        RECORD 0
  1404. thisColor                 ds        ARGBColor        ; offset: $0 (0)
  1405. endingPercentage         ds.l    1                ; offset: $8 (8)
  1406. sizeof                     EQU *                    ; size:   $C (12)
  1407.                         ENDR
  1408. ; typedef struct GradientColorRecord *    GradientColorPtr
  1409.  
  1410.  
  1411. kCurveGradientTypeAtom            EQU        'grdt'
  1412. ;  currently supported gradient types 
  1413.  
  1414. kLinearGradient                    EQU        0
  1415. kCircularGradient                EQU        1
  1416. ; typedef long                             GradientType
  1417.  
  1418. ;
  1419. ; pascal ComponentResult CurveGetLength(ComponentInstance effect, gxPaths *target, long index, wide *wideLength)
  1420. ;
  1421.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1422.         Macro
  1423.         _CurveGetLength
  1424.             move.l              #$000C0100,-(sp)
  1425.             moveq               #0,D0
  1426.             dc.w                $A82A
  1427.         EndM
  1428.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1429.         IMPORT_CFM_FUNCTION CurveGetLength
  1430.     ENDIF
  1431.  
  1432. ;
  1433. ; pascal ComponentResult CurveLengthToPoint(ComponentInstance effect, gxPaths *target, long index, Fixed length, FixedPoint *location, FixedPoint *tangent)
  1434. ;
  1435.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1436.         Macro
  1437.         _CurveLengthToPoint
  1438.             move.l              #$00140101,-(sp)
  1439.             moveq               #0,D0
  1440.             dc.w                $A82A
  1441.         EndM
  1442.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1443.         IMPORT_CFM_FUNCTION CurveLengthToPoint
  1444.     ENDIF
  1445.  
  1446. ;
  1447. ; pascal ComponentResult CurveNewPath(ComponentInstance effect, Handle *pPath)
  1448. ;
  1449.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1450.         Macro
  1451.         _CurveNewPath
  1452.             move.l              #$00040102,-(sp)
  1453.             moveq               #0,D0
  1454.             dc.w                $A82A
  1455.         EndM
  1456.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1457.         IMPORT_CFM_FUNCTION CurveNewPath
  1458.     ENDIF
  1459.  
  1460. ;
  1461. ; pascal ComponentResult CurveCountPointsInPath(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long *pCount)
  1462. ;
  1463.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1464.         Macro
  1465.         _CurveCountPointsInPath
  1466.             move.l              #$000C0103,-(sp)
  1467.             moveq               #0,D0
  1468.             dc.w                $A82A
  1469.         EndM
  1470.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1471.         IMPORT_CFM_FUNCTION CurveCountPointsInPath
  1472.     ENDIF
  1473.  
  1474. ;
  1475. ; pascal ComponentResult CurveGetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean *ptIsOnPath)
  1476. ;
  1477.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1478.         Macro
  1479.         _CurveGetPathPoint
  1480.             move.l              #$00140104,-(sp)
  1481.             moveq               #0,D0
  1482.             dc.w                $A82A
  1483.         EndM
  1484.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1485.         IMPORT_CFM_FUNCTION CurveGetPathPoint
  1486.     ENDIF
  1487.  
  1488. ;
  1489. ; pascal ComponentResult CurveInsertPointIntoPath(ComponentInstance effect, gxPoint *aPoint, Handle thePath, unsigned long contourIndex, unsigned long pointIndex, Boolean ptIsOnPath)
  1490. ;
  1491.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1492.         Macro
  1493.         _CurveInsertPointIntoPath
  1494.             move.l              #$00120105,-(sp)
  1495.             moveq               #0,D0
  1496.             dc.w                $A82A
  1497.         EndM
  1498.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1499.         IMPORT_CFM_FUNCTION CurveInsertPointIntoPath
  1500.     ENDIF
  1501.  
  1502. ;
  1503. ; pascal ComponentResult CurveSetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean ptIsOnPath)
  1504. ;
  1505.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1506.         Macro
  1507.         _CurveSetPathPoint
  1508.             move.l              #$00120106,-(sp)
  1509.             moveq               #0,D0
  1510.             dc.w                $A82A
  1511.         EndM
  1512.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1513.         IMPORT_CFM_FUNCTION CurveSetPathPoint
  1514.     ENDIF
  1515.  
  1516. ;
  1517. ; pascal ComponentResult CurveGetNearestPathPoint(ComponentInstance effect, gxPaths *aPath, FixedPoint *thePoint, unsigned long *contourIndex, unsigned long *pointIndex, Fixed *theDelta)
  1518. ;
  1519.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1520.         Macro
  1521.         _CurveGetNearestPathPoint
  1522.             move.l              #$00140107,-(sp)
  1523.             moveq               #0,D0
  1524.             dc.w                $A82A
  1525.         EndM
  1526.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1527.         IMPORT_CFM_FUNCTION CurveGetNearestPathPoint
  1528.     ENDIF
  1529.  
  1530. ;
  1531. ; pascal ComponentResult CurvePathPointToLength(ComponentInstance ci, gxPaths *aPath, Fixed startDist, Fixed endDist, FixedPoint *thePoint, Fixed *pLength)
  1532. ;
  1533.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1534.         Macro
  1535.         _CurvePathPointToLength
  1536.             move.l              #$00140108,-(sp)
  1537.             moveq               #0,D0
  1538.             dc.w                $A82A
  1539.         EndM
  1540.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1541.         IMPORT_CFM_FUNCTION CurvePathPointToLength
  1542.     ENDIF
  1543.  
  1544. ;
  1545. ; pascal ComponentResult CurveCreateVectorStream(ComponentInstance effect, Handle *pStream)
  1546. ;
  1547.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1548.         Macro
  1549.         _CurveCreateVectorStream
  1550.             move.l              #$00040109,-(sp)
  1551.             moveq               #0,D0
  1552.             dc.w                $A82A
  1553.         EndM
  1554.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1555.         IMPORT_CFM_FUNCTION CurveCreateVectorStream
  1556.     ENDIF
  1557.  
  1558. ;
  1559. ; pascal ComponentResult CurveAddAtomToVectorStream(ComponentInstance effect, OSType atomType, Size atomSize, void *pAtomData, Handle vectorStream)
  1560. ;
  1561.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1562.         Macro
  1563.         _CurveAddAtomToVectorStream
  1564.             move.l              #$0010010A,-(sp)
  1565.             moveq               #0,D0
  1566.             dc.w                $A82A
  1567.         EndM
  1568.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1569.         IMPORT_CFM_FUNCTION CurveAddAtomToVectorStream
  1570.     ENDIF
  1571.  
  1572. ;
  1573. ; pascal ComponentResult CurveAddPathAtomToVectorStream(ComponentInstance effect, Handle pathData, Handle vectorStream)
  1574. ;
  1575.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1576.         Macro
  1577.         _CurveAddPathAtomToVectorStream
  1578.             move.l              #$0008010B,-(sp)
  1579.             moveq               #0,D0
  1580.             dc.w                $A82A
  1581.         EndM
  1582.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1583.         IMPORT_CFM_FUNCTION CurveAddPathAtomToVectorStream
  1584.     ENDIF
  1585.  
  1586. ;
  1587. ; pascal ComponentResult CurveAddZeroAtomToVectorStream(ComponentInstance effect, Handle vectorStream)
  1588. ;
  1589.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1590.         Macro
  1591.         _CurveAddZeroAtomToVectorStream
  1592.             move.l              #$0004010C,-(sp)
  1593.             moveq               #0,D0
  1594.             dc.w                $A82A
  1595.         EndM
  1596.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1597.         IMPORT_CFM_FUNCTION CurveAddZeroAtomToVectorStream
  1598.     ENDIF
  1599.  
  1600. ;
  1601. ; pascal ComponentResult CurveGetAtomDataFromVectorStream(ComponentInstance effect, Handle vectorStream, long atomType, long *dataSize, Ptr *dataPtr)
  1602. ;
  1603.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1604.         Macro
  1605.         _CurveGetAtomDataFromVectorStream
  1606.             move.l              #$0010010D,-(sp)
  1607.             moveq               #0,D0
  1608.             dc.w                $A82A
  1609.         EndM
  1610.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1611.         IMPORT_CFM_FUNCTION CurveGetAtomDataFromVectorStream
  1612.     ENDIF
  1613.  
  1614.  
  1615. ;  UPP call backs 
  1616.     ENDIF ; __IMAGECODEC__ 
  1617.  
  1618.